package com.nexgo.payment.action.signature;

import android.graphics.Bitmap;

import com.nexgo.payment.BasePresenter;
import com.nexgo.payment.BaseView;
import com.nexgo.payment.entity.SignatureInfo;

/**
 * 电子签名相关接口
 *
 * @author 谭忠扬-YuriTam
 * @time 2017年08月14日
 */
public interface SignatureContract {
    interface View extends BaseView<Presenter> {

        /**
         * 提示最大签名次数
         */
        void showMaxSignatureTimes();

        /**
         * 清除签名
         *
         * @param tryTimes 签名次数
         */
        void clearSignature(int tryTimes);

        /**
         * 提示确认签名
         *
         * @param bitmap 签名
         */
        void showSignatureConfirm(Bitmap bitmap);

        /**
         * 签名完成
         *
         * @param info 签名数据
         */
        void showSignatureFinish(SignatureInfo info);

        /**
         * 提示签名初始化错误
         */
        void showSignatureErr();

        /**
         * 提示签名太复杂
         */
        void showSignatureTooComplicated();

        /**
         * 签名失败
         */
        void showSignatureFail();

        /**
         * 提示消息
         *
         * @param message
         */
        void showToast(String message);

        /**
         * 界面状态
         *
         * @return
         */
        boolean isActive();
    }

    interface Presenter extends BasePresenter {

        /**
         * 清除签名
         */
        void clearSignature();

        /**
         * 客户确认签名
         *
         * @param bitmap
         */
        void customerConfirmSignature(Bitmap bitmap);

        /**
         * 操作员确认签名
         *
         * @param confirm 确认标识
         */
        void operatorConfirmSignature(boolean confirm);

        /**
         * 签名太复杂
         */
        void signatureTooComplicate();

        /**
         * 获取签名超时时间
         *
         * @return 返回超时时间
         */
        int getSignatureTimeout();
    }
}
